var oSelectedTeams;
var oSelectedTeamsName;
var bIsAnyMatch = false;
var idClock = "";
var bInitSchedule = true;

var strDivMain = '<div id="marcaNotifierDiv" class="contenedorGCEMarca">' +
'    <div class="contenidosGCEMarca">' +
'        <div class="cabeceraGCEMarca">' +
'            <img class="logoGCEMarca" src="http://gce-marca.googlecode.com/svn/trunk/img/marca.jpg" /><img class="minimizarGCEMarca" src="http://gce-marca.googlecode.com/svn/trunk/img/minimizar.jpg" id="botonMinimizar"/>' +
'        </div>' +
'        <div id="maximizado" class="resultadosGCEMarca">' +
'        </div>' +
'    </div>' +
'</div>';

var strDivResultado = '<div class="resultadoGCEMarca">' +
'    <div class="parteGCEMarca">' +
'    <a class="tipoPartidoGCEMarca" href="{7}" target="_blank"></a>' +
'   <span class="tipoPartidoGCEMarca">{6}</span>' +
'        <span class="parteGCEMarca">{0}</span>' +
'        <span class="actualizadoGCEMarca">Hora: {1}</span>' +
'    </div>' +
'    <div class="equipo1GCEMarca">' +
'        <span class="equipoGCEMarca">{2}</span>' +
'        <span class="golesGCEMarca">{3}</span>' +
'    </div>' +
'    <img class="sepGCEMarca" src="http://gce-marca.googlecode.com/svn/trunk/img/sep-resultado.jpg" />' +
'    <div class="equipo2GCEMarca">' +
'        <span class="golesGCEMarca">{4}</span>' +
'        <span class="equipoGCEMarca">{5}</span>' +
'    </div>' +
'</div>';


// String.format 
function _StringFormatInline(){
    var txt = this;
    for (var i = 0; i < arguments.length; i++) {
        var exp = new RegExp('\\{' + (i) + '\\}', 'gm');
        txt = txt.replace(exp, arguments[i]);
    }
    return txt;
}

function _StringFormatStatic(){
    for (var i = 1; i < arguments.length; i++) {
        var exp = new RegExp('\\{' + (i - 1) + '\\}', 'gm');
        arguments[0] = arguments[0].replace(exp, arguments[i]);
    }
    return arguments[0];
}

if (!String.prototype.format) {
    String.prototype.format = _StringFormatInline;
}

if (!String.format) {
    String.format = _StringFormatStatic;
}


Storage.prototype.setObject = function(key, value){
    this.setItem(key, JSON.stringify(value));
}

Storage.prototype.getObject = function(key){
    try {
        return JSON.parse(this.getItem(key));
    } 
    catch (e) {
    }
}

if (window.parent != null) { // Disabling for iframes
    // Setting the position of the body as relative so that absolute elements are also slided down
    if (!window.document.body.style.position) {
        window.document.body.style.position = "relative";
    }
    
    if (localStorage.getObject('maximizied') == null) {
        console.log("inicializado")
        localStorage.setObject('maximizied', 1);
    }
    
    startRequest();
}


function startRequest(){
    chrome.extension.sendRequest({
        getResults: "futbol"
    }, function(response){
        oSelectedTeamsName = JSON.parse(response.teamResults);
        drawResults(response.matchResults);
    });
    scheduleRequest();
}

function scheduleRequest(){
    var delay = 10 * 60 * 1000; // 10 minutes
    if (bInitSchedule) {
        delay = 20 * 1000; // 10 seconds
        bInitSchedule = false;
    }
    else 
        if (bIsAnyMatch) 
            delay = 60 * 1000; // 1 minute
        else 
            delay = 15 * 60 * 1000; // 15 minutes  
    window.setTimeout(startRequest, delay);
}


function bIsTeamSelected(strTeamName){
    var bReturn = false;
    if (oSelectedTeamsName.length != undefined) {
        for (var i = 0; i < oSelectedTeamsName.length; i++) {
            if (oSelectedTeamsName[i] == strTeamName) {
                bIsAnyMatch = true;
                return true;
            }
            
        }
    }
    return bReturn;
}

function drawResults(strResults){
    var sLoc = "1";
    try {
        bIsAnyMatch = false;
        $('#marcaNotifierDiv').remove();
        $("body").append(strDivMain);
        
        
        if (strResults != undefined) {
            var oResults = JSON.parse(strResults);
            if (oResults.deporte.length == undefined) {
                if (oResults.deporte.nombre.indexOf("tbol") > 0) {
                    if (oResults.deporte.competicion.length == undefined) {
                        if (oResults.deporte.competicion.evento.length == undefined) {
                            sLoc = "2";
                            if (bIsTeamSelected(oResults.deporte.competicion.evento.local) || bIsTeamSelected(oResults.deporte.competicion.evento.visitante)) 
                                $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte.competicion.evento.estado, oResults.deporte.competicion.evento.hora, oResults.deporte.competicion.evento.local, oResults.deporte.competicion.evento.resloc, oResults.deporte.competicion.evento.resvis, oResults.deporte.competicion.evento.visitante, oResults.deporte.competicion.nombre, oResults.deporte.competicion.url));
                        }
                        else {
                            for (var i = 0; i < oResults.deporte.competicion.evento.length; i++) {
                                sLoc = "3";
                                if (bIsTeamSelected(oResults.deporte.competicion.evento[i].local) || bIsTeamSelected(oResults.deporte.competicion.evento[i].visitante)) 
                                    $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte.competicion.evento[i].estado, oResults.deporte.competicion.evento[i].hora, oResults.deporte.competicion.evento[i].local, oResults.deporte.competicion.evento[i].resloc, oResults.deporte.competicion.evento[i].resvis, oResults.deporte.competicion.evento[i].visitante, oResults.deporte.competicion.nombre, oResults.deporte.competicion.url));
                            }
                        }
                    }
                    else {
                        for (var i = 0; i < oResults.deporte.competicion.length; i++) {
                            if (oResults.deporte.competicion[i].evento.length == undefined) {
                                sLoc = "4";
                                if (bIsTeamSelected(oResults.deporte.competicion[i].evento.local) || bIsTeamSelected(oResults.deporte.competicion[i].evento.visitante)) 
                                    $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte.competicion[i].evento.estado, oResults.deporte.competicion[i].evento.hora, oResults.deporte.competicion[i].evento.local, oResults.deporte.competicion[i].evento.resloc, oResults.deporte.competicion[i].evento.resvis, oResults.deporte.competicion[i].evento.visitante, oResults.deporte.competicion[i].nombre, oResults.deporte.competicion[i].url));
                            }
                            else {
                                for (var j = 0; j < oResults.deporte.competicion[i].evento.length; j++) {
                                    sLoc = "5";
                                    if (bIsTeamSelected(oResults.deporte.competicion[i].evento[j].local) || bIsTeamSelected(oResults.deporte.competicion[i].evento[j].visitante)) 
                                        $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte.competicion[i].evento[j].estado, oResults.deporte.competicion[i].evento[j].hora, oResults.deporte.competicion[i].evento[j].local, oResults.deporte.competicion[i].evento[j].resloc, oResults.deporte.competicion[i].evento[j].resvis, oResults.deporte.competicion[i].evento[j].visitante, oResults.deporte.competicion[i].nombre, oResults.deporte.competicion[i].url));
                                }
                            }
                        }
                    }
                }
            }
            else {
                for (var i = 0; i < oResults.deporte.length; i++) {
                    if (oResults.deporte[i].nombre.indexOf("tbol") > 0) {
                        if (oResults.deporte[i].competicion.length == undefined) {
                            if (oResults.deporte[i].competicion.evento.length == undefined) {
                                sLoc = "6";
                                if (bIsTeamSelected(oResults.deporte[i].competicion.evento.local) || bIsTeamSelected(oResults.deporte[i].competicion.evento.visitante)) 
                                    $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte[i].competicion.evento.estado, oResults.deporte[i].competicion.evento.hora, oResults.deporte[i].competicion.evento.local, oResults.deporte[i].competicion.evento.resloc, oResults.deporte[i].competicion.evento.resvis, oResults.deporte[i].competicion.evento.visitante, oResults.deporte[i].competicion.nombre, oResults.deporte[i].competicion.url));
                                sLoc = "61";
                            }
                            else {
                                for (var j = 0; j < oResults.deporte[i].competicion.evento.length; j++) {
                                    sLoc = "7";
                                    if (bIsTeamSelected(oResults.deporte[i].competicion.evento[j].local) || bIsTeamSelected(oResults.deporte[i].competicion.evento[j].visitante)) 
                                        $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte[i].competicion.evento[j].estado, oResults.deporte[i].competicion.evento[j].hora, oResults.deporte[i].competicion.evento[j].local, oResults.deporte[i].competicion.evento[j].resloc, oResults.deporte[i].competicion.evento[j].resvis, oResults.deporte[i].competicion.evento[j].visitante, oResults.deporte[i].competicion.nombre, oResults.deporte[i].competicion.url));
                                }
                            }
                        }
                        else {
                            for (var j = 0; j < oResults.deporte[i].competicion.length; j++) {
                                if (oResults.deporte[i].competicion[j].evento.length == undefined) {
                                    sLoc = "8";
                                    if (bIsTeamSelected(oResults.deporte[i].competicion[j].evento.local) || bIsTeamSelected(oResults.deporte[i].competicion[j].evento.visitante)) 
                                        $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte[i].competicion[j].evento.estado, oResults.deporte[i].competicion[j].evento.hora, oResults.deporte[i].competicion[j].evento.local, oResults.deporte[i].competicion[j].evento.resloc, oResults.deporte[i].competicion[j].evento.resvis, oResults.deporte[i].competicion[j].evento.visitante, oResults.deporte[i].competicion[j].nombre, oResults.deporte[i].competicion[j].url));
                                }
                                else {
                                    for (var k = 0; k < oResults.deporte[i].competicion[j].evento.length; k++) {
                                        sLoc = "9";
                                        if (bIsTeamSelected(oResults.deporte[i].competicion[j].evento[k].local) || bIsTeamSelected(oResults.deporte[i].competicion[j].evento[k].visitante)) 
                                            $("#marcaNotifierDiv").append(strDivResultado.format(oResults.deporte[i].competicion[j].evento[k].estado, oResults.deporte[i].competicion[j].evento[k].hora, oResults.deporte[i].competicion[j].evento[k].local, oResults.deporte[i].competicion[j].evento[k].resloc, oResults.deporte[i].competicion[j].evento[k].resvis, oResults.deporte[i].competicion[j].evento[k].visitante, oResults.deporte[i].competicion[j].nombre, oResults.deporte[i].competicion[j].url));
                                    }
                                }
                            }
                        }
                    }
                }
                
            }
            
            if (localStorage.getObject('maximizied') == 0) {
                $("#botonMinimizar").attr("src", "http://gce-marca.googlecode.com/svn/trunk/img/maximizar.jpg");
                $(".resultadoGCEMarca").hide();
                //$(".resultadoGCEMarca:first").show();
            }
            
            $("#botonMinimizar").click(function(){
                if ($("#botonMinimizar").attr("src").indexOf("minimizar") >= 0) {
                    $("#botonMinimizar").attr("src", "http://gce-marca.googlecode.com/svn/trunk/img/maximizar.jpg");
                    $(".resultadoGCEMarca").hide();
                    //$(".resultadoGCEMarca:first").show();
                    localStorage.setObject('maximizied', 0)
                }
                else {
                    $(".resultadoGCEMarca").show();
                    $("#botonMinimizar").attr("src", "http://gce-marca.googlecode.com/svn/trunk/img/minimizar.jpg");
                    localStorage.setObject('maximizied', 1)
                }
                
            });
            
            if (!bIsAnyMatch) 
                $('#marcaNotifierDiv').remove();
            else 
                $('#marcaNotifierDiv').show();
            
            //    $('#marcaNotifierDiv').slideDown(250, function(){});
        
        }
    } 
    catch (e) {
        console.log("error:" + e.message + "sLoc:" + sLoc);
    }
}



